Spec仓库
Spec是Pods索引库,所有公开的Pods都在这个里面,它实际是一个Git仓库 remote端在GitHub上,当使用了Cocoapods后他会被clone到本地的~/.cocoapods/repos
目录下,进入到这个目录看到master文件夹就是这个官方的Spec Repo了。
每次我们在执行pod install
或者是pod update
的时候都会自动更新这个spec里面的内容,拉取最新的数据回来。然后我们使用pod search
的时候就是直接从这个里面进行查询的。
向CocoaPods添加私有仓库
|
可以通过 cd ~/.cocoapods/repos
这个目录里面检查是否创建好具体的私有库,添加成功之后可以通过pod repo list
的命令查看
|
删除本地一个私有Spec Repo
|
更新本地一个私有Spec Repo
|
使用Cocoapods模板创建demo
|
接下来会有五步的交互:
完成后项目会自动打开,然后替换pod下面的Development Pods
下的ReplaceMe.m
文件为你的源码组件
代码文件放到Classes
目录下,如果有资源文件则需要放到Assets
目录下。完成之后cd到example目录下执行pod update,重新打开工程就能看到你的源码文件了。
编写.podspec文件内容
这是比较重要也比较容易写错的一步,示例podspec内容如下
|
编写好之后进行提交,并打tag,步骤如下:
|
添加对应的Tag
|
验证podspec文件的正确性
|
忽略警告使用:
|
提交podspec文件到Spec库并使用
|
执行这步之前要确保对应本地私有库已添加成功,就是文章开始的第二段内容!向CocoaPods添加私有仓库
添加成功后可以通过pod repo list
的命令查看。也可以搜索检验下是否成功:
|
如果搜索不到,清离搜索缓存再试下
|
使用私有pod,在个人项目中的Podfile中增加刚刚制作好的Pod
|
保存后执行pod install
,就可以去项目中使用了
问题整理
The URL is not reachable.
- WARN | url: The URL (https://gitlab.inin88.com/hao01.zhang) is not reachable.原因是
s.homepage
设置的不正确如下图中所示
以上两个问题解决方案:
sudo rm -fr ~/.cocoapods/repos/master && pod setup记得先备份下本地master的repo,以防万一更不下来,如果更新成功后还是不能引用所有库,可能是仓库访问地址有问题,将https换成ssh试试!
发布代码到CocoaPods(Trunk方式)
另:其实让自己的组件在github也能支持pod,跟这些步骤几乎是一致的,只是最后的sepc文件需要传到官方的specs里,可以通过Trunk推送给Cocoapods服务器,如下:
- 首先向trunk服务器查询自己的注册信息
pod trunk me- 若没有注册,需要注册trunk账号
pod trunk register 邮箱地址 用户名 -verbose该指令会发送一封验证邮件到你的邮箱,在邮箱里直接点击链接完成注册即可;然后重复步骤1查看注册结构
- 最后通过终端push对应的podspec,完成开源项目支持Cocoapods的最后一步
pod trunk push spec文件名.podspec// 如果需要忽略警告pod trunk push spec文件名.podspec --allow-warnings… 更新本地pod依赖库
pod setup
,然后就可以搜索到了…